#/bin/bash


# 设置切换成root
ToBeRoot()
{
 # 判断是否为root用户
 if [ "`whoami`" != "root" ]; then 
  echo "You must be root to run this script!" | boxes -d columns -a c
  echo "正在帮你自动切换为root用户!" | pv -qL 20
  sudo su
 fi
}

ToBeRoot


## Push代码的建议执行顺序

git status #查看修改状态

# git checkout filename #放弃某文件的修改。

git stash # 储存修改

git fetch # 拉取最新工程

git rebase # 与本地分支合并

git stash pop # 弹出储存文件，此时新文件可能会与你的文件产生冲突，解决冲突。

# git add filename 添加某个修改文件

git add . # 提交所有加点

# git reset HEAD filename # 回滚指定文件，回滚所有加点："git reset HEAD . "

# echo "请输入描述信息" | boxes -d columns -a c
git commit -m "..."


git push # 本地remote远程分支名，本地分支名

git status #查看修改状态


# 把这个目录变成git可以管理的仓库
# git init

# git fetch

# git add -A  提交所有变化
# git add -u  提交被修改(modified)和被删除(deleted)文件，不包括新文件(new)
# git add .  提交新文件(new)和被修改(modified)文件，不包括被删除(deleted)文件
# git status
# 添加到暂存区里面去
# git add -A


# echo "请输入描述信息" | boxes -d columns -a c
# echo "请输入描述信息" | pv -qL 20
# read -p ": " input
# git commit -m "$input"
# git pull --rebase origin master
# git push origin master



# 关联到远程库
# git remote add origin git@+服务器地址

# git clone 指定分支
# git clone -b dev_jk http://10.1.1.11/service/tmall-service.git

# 将最新的修改推送到远程仓库
# git push -u origin master     # 这句直接提交不用写什么commit，很方便

# 获取远程库与本地同步合并
# git pull --rebase origin master

# 查看改动情况
# git status

# 查看在哪个位置
# git branch

# 切换到分支
# git checkpoint develop    # develop是分支名称

# 上传到服务器
# git push origin develop   # origin是服务器的名称 develop是分支名称


















## 1.查看本地文件状态

# git status  
# —-查看本地、本地仓库、缓存（stash）的文件修改状态

# —红色 代表本地工作空间的文件修改

# —蓝色 代表提交到本地仓库中的文件(git add .)

# 2.切换版本/覆盖当前修改文件

# git branch - 查看当前版本

# git branch -a 查看所有版本

# git checkout XXX(版本名)  —-切换到远程库中XXX版本

# git checkout filepath    —覆盖当前修改的文件

# git checkout .           -覆盖当前所有修改文件

## 3.从远程库获取最新代码

# git remote -查看远程库名称

# git remote -v  

# git remote show XXX(远程库名)

# git fetch — 从remote端拉取最新代码

# git pull XXX(远程库名) XXX(分支名)  -把拉取的最新代码跟当前工作空间合并

# git rebase —把远程拉回的代码和本地合并

# 4.缓存本地代码

# 当要切换到其它版本时，想保存在当前版本修改的文件：在切换前做

# git stash   —-把本地修改过不需要提交的文件放入缓存

# git checkout XXX(版本)   —切换库版本

# 切回原来的库，把文件从stash缓存中拿出来

# git stash pop — 从缓存中拉出

# 5.提交远程库

# git add .

# git commit -m ''

# git remote 查看远程关联名称

# git push remote的名称 本地master

# 6.处理冲突

# git fetch 拉取最新工程

# git pull XXX(远程库名) XXX(分支名)  -把拉取的最新代码跟当前工作空间合并

# 冲突产生后，去工作空间修改后，>>>新代码===老代码<<<,保留最终代码，删除提示符，重新提交。

# 7.把本次提交的内容提交到其他分支（比如发布时bug的修改）

# git cherry-pick commitId



# 例我的本地分支为master 远程remote 别名为 origin 则提交为git push origin master

# 9.切换HEAD

# git reflog --查看HEAD记录

# git reset --hard HEAD^       //切换到之前一个HEAD 

# git reset --hard fad4462      // 切换到某个已经回退的HEAD

# 10.刪除 local branch

# git branch -d <branch_name>
